.\" Licensed under the OpenIB.org BSD license (FreeBSD Variant) - See COPYING.md
.TH "RDMA_POST_RECV" 3 "2010-07-19" "librdmacm" "Librdmacm Programmer's Manual" librdmacm
.SH NAME
rdma_post_recv \- post a work request to receive an incoming message.
.SH SYNOPSIS
.B "#include <rdma/rdma_verbs.h>"
.P
.B "int" rdma_post_recv
.BI "(struct rdma_cm_id *" id ","
.BI "void *" context ","
.BI "void *" addr ","
.BI "size_t " length ","
.BI "struct ibv_mr *" mr ");"
.SH ARGUMENTS
.IP "id" 12
A reference to a communication identifier where the message buffer
will be posted.
.IP "context" 12
User-defined context associated with the request.
.IP "addr" 12
The address of the memory buffer to post.
.IP "length" 12
The length of the memory buffer.
.IP "mr" 12
A registered memory region associated with the posted buffer.
.SH "DESCRIPTION"
Posts a work request to the receive queue of the queue pair associated
with the rdma_cm_id.  The posted buffer will be queued to receive an incoming
message sent by the remote peer.
.SH "RETURN VALUE"
Returns 0 on success, or -1 on error.  If an error occurs, errno will be
set to indicate the failure reason.
.SH "NOTES"
The user is responsible for ensuring that a receive buffer is posted
and large enough to contain all sent data before the peer posts the
corresponding send message.  The message buffer must have been registered
before being posted, with the mr parameter referencing the registration.
The buffer must remain registered until the receive completes.
.P
Messages may be posted to an rdma_cm_id only after a queue pair has
been associated with it.  A queue pair is bound to an rdma_cm_id after
calling rdma_create_ep or rdma_create_qp, if the rdma_cm_id is allocated
using rdma_create_id.
.P
The user-defined context associated with the receive request will be
returned to the user through the work completion wr_id, work request
identifier, field.
.SH "SEE ALSO"
rdma_cm(7), rdma_create_id(3), rdma_create_ep(3), rdma_create_qp(3),
rdma_reg_read(3), ibv_reg_mr(3), ibv_dereg_mr(3),
rdma_post_recvv(3), rdma_post_send(3)
